package com.kotlin.myapplicationd.model;

import android.content.Context;


import com.kotlin.network.bean.LoginBean;
import com.kotlin.network.model.BasePresenter;
import com.kotlin.network.model.IEcoGetDataView;
import com.kotlin.network.model.INormalData;
import com.kotlin.network.retrofit.RetroFactory;
import com.kotlin.network.retrofit.RxSchedulersHelper;
import com.kotlin.network.retrofit.http.HttpResultFunc;

import java.util.List;

import retrofit2.http.FormUrlEncoded;
import rx.Subscription;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;

/**
 * Author：xudong
 * Date: 16/7/14 20:23
 */
public class CommonPresenter implements BasePresenter {

    public static final String TAG = CommonPresenter.class.getSimpleName();
    //private IEcoGetDataView mvpView;
    private Context context;



    public CommonPresenter(IEcoGetDataView mvpView, Context context) {
        //this.mvpView = mvpView;
        this.context = context;
    }

    /**
     * 不传接口进来，具体网络请求单独传 接口
     * note:此种情况是一个页面多个网络请求情况
     */
    public CommonPresenter(Context context) {
        this.context = context;
    }

    //public IEcoGetDataView getMvpView() {
    //	//return mvpView;
    //}

    @Override
    public void onStart() {

    }

    @Override
    public void onDestroy() {
        //mvpView = null;
    }



    /**
     * 发送验证码
     *
     * @param phone     用户手机号
     * @param code_type 发送类型 ,分别有 login（登录） register（注册） change（修改手机号）
     * @return
     */
//    public void smsCheckCode(String phone, String code_type, INormalData mvpView) {
//        RetroFactory.getApiServiceInstance()
//                .smsCheckCode(phone, code_type)
//                .compose(RxSchedulersHelper.io_main())
//                .map(new HttpResultFunc<String>())
//                .subscribe(new ProgressSubscriber<String>(context, true) {
//                    @Override
//                    public void success(String data) {
//                        ToolAlert.toastLong(data);
//                        mvpView.load(data);
//                    }
//
//
//                    @Override
//                    public void errorCode(String errorMsg, String code) {
//                        mvpView.error(errorMsg, code);
//                    }
//                });
//    }


    /**
     * 登录
     * @param account
     * @param password
     * @param mvpView
     */
    @FormUrlEncoded
    public void login(String account, String password, final INormalData mvpView, boolean isLoading) {
        RetroFactory.getApiServiceInstance()
                //RetroFactory.getApiNoJsonServiceInstance()
                .login(account, password)
                .compose(RxSchedulersHelper.io_main())
                .map(new HttpResultFunc<LoginBean>())
                .subscribe(new ProgressSubscriber<LoginBean>(context, isLoading) {
                    @Override
                    public void success(LoginBean data) {
                        //ToolAlert.toastLong(data);
                        mvpView.load(data);
                    }


                    @Override
                    public void errorCode(String errorMsg, int code) {
                        mvpView.error(errorMsg, code);
                    }

                    @Override
                    public void error(String errorMsg) {
                        mvpView.error(errorMsg, 0);
                    }
                });
    }



}
